// Package util 工具包
package util

import (
	"bufio"
	"encoding/json"
	"fmt"
	"os"
	"runtime/debug"
)

func init() {
	createDirtyWords()
}

// 生成脏词库
func createDirtyWords() {
	file, err := os.Open("list.txt")
	HandleErr(err)
	defer file.Close()
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		// 读取每行的词,长度小于1忽略空字符串
		line := scanner.Text()
		if len(line) < 1 {
			continue
		}
		addDirty2Map(line)
	}
}

//HandleErr 错误处理
func HandleErr(e error) {
	if e != nil {
		fmt.Println("the error = ", e)
		debug.PrintStack()
	}
}

// Json2Struct json转结构体
func Json2Struct(jsonData []byte, obj interface{}) {
	err := json.Unmarshal(jsonData, obj)
	HandleErr(err)
}

// Struct2Json 结构体转json
func Struct2Json(obj interface{}) []byte {
	data, err := json.Marshal(obj)
	HandleErr(err)
	return data
}
